پروژه دانشجویی مقاله Smtp server فایل ورد (word)
نوشته شده به وسیله ی ali در تاریخ 95/5/30:: 3:48 صبح
پروژه دانشجویی مقاله Smtp server فایل ورد (word) دارای 48 صفحه می باشد و دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است
فایل ورد پروژه دانشجویی مقاله Smtp server فایل ورد (word) کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه و مراکز دولتی می باشد.
این پروژه توسط مرکز مرکز پروژه های دانشجویی آماده و تنظیم شده است
توجه : در صورت مشاهده بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل ورد می باشد و در فایل اصلی پروژه دانشجویی مقاله Smtp server فایل ورد (word) ،به هیچ وجه بهم ریختگی وجود ندارد
بخشی از متن پروژه دانشجویی مقاله Smtp server فایل ورد (word) :
خلاصه درس: در این درس میآموزیم که با پورت 25 (SMTP) ارتباط برقرار کنیم و از آن برای ارسال Fake Mail استفاده کنیم.
پورت 25 چیست؟
پورت 25 برای ارسال E-mail بهکار میرود. این پورت از پروتکل SMTP برای این کار استفاده میکند. نکته مهم آن است که این پروتکل توانایی خواندن E-mail را ندارد و فقط میتواند E-mail بفرستد.
حالا سوالی که پیش میآید که چه برنامههایی روی سرور پورت 25 را باز میکند؟
همانطور که گفتم، SMTP فقط یک پروتکل است (نه یک برنامه) و از نظر لغوی مخفف عبارت Simple Mail Transfer Protocol است. برنامهای که پورت 25 را باز میکند تا بتوان از طریق آن E-mail ارسال کنیم، SMTP Server میگویند. SMTP Server یک عبارت کلی است، برای این نوع برنامهها. حالا خود SMTP Server انواع مختلف دارد که مشهورترینهایشان، SMail، SendMail، ESMTP MAIL Service و ; هستند. نکته مهم این است که تفاوت زیادی نیست که سرور مورد نظر ما از کدامیک از این نرمافزارها استفاده میکند، زیرا اصول کار با آنها یکی است.
برای صحبت کردن با پورت 25 اول باید یک Server پیدا کنیم که پورت 25 در آن باز باشد (اگرچه در اکثر سرورها پورت 25 باز است). بعد باید طبق معمول از telnet یا nc برای ارتباط استفاده کنیم.
پورت 25 از دیدگاه یک هکر چه کاربردی دارد؟
یک هکر از پورت 25 برای ارسال Fake Mail (میل ناشناس، میل تقلبی) استفاده میکند. دلیل آن است که درصد بسیار بالایی از SMTP Server ها اهمیتی نمیدهند که شما کی هستید و به کی میخواهید میل بزنید، بلکه فقط کار خود را میکنند.
چگونه یک SMTP سرور پیدا کنیم
پیدا کردن SMTP سرور کار سختی نیست. اگرچه از اکثر SMTP Server ها میتوان به هر کسی E-mail زد ولی من همیشه توصیه میکنم از SMTP Server ی استفاده کنید که مربوط به به Mail Box قربانی است. برای مثال فرض کنید که میخواهید به کسی fake mail بزنید و اون شخص mail box اش در یاهو است. در این حالت من ترجیح میدم که از SMTP Server های سرور یاهو استفاده کنم ( اگرچه از هر سرور دیگری برای این کار میتونم استفاده کنم ).
اگرچه ما عبارت fake mail (ناشناس) برای این نوع E-mail ها استفاده میکنیم ولی باید توجه کنید که در مواردی خاص میشود شما را ردیابی کرد. به عنوان مثال ip شما از مواردی است که همراه با E-mail ارسال میشود. پس در انتخاب SMTP Server باید دقت کرد (بعضی SMTP Server ها هستند که حتی ip شما را ارسال نمیکنند و این یعنی نهایت ناشناسی).
نکته بعدی این است که بعضی SMTP Server ها یه کم باهوش عمل میکنند به طوری که در نهایت E-mail ارسالی حداقل برای اشخاص حرفهای ماهیتش (fake بودن) قابل تشخیص خواهد بود (یعنی میفهمند که این یک fake mail است نه یه E-mail واقعی). پس این هم در انتخاب SMTP Server مهم است که باید از SMTP Server هایی استفاده کنیم که در نهایت حماقت باشند!
بازم یه نکته دیگه، SMTP Server در نهایت روی یک سرور قرار دارد پس در نهایت آدرس آن چیزی مثل mail.far30.com، mx01.hotmail.com و ; خواهد بود.
حالا که معیارهای مهم برای انتخاب SMTP Server را شناختیم، حالا وقتش است که عملا یه SMTP Server پیدا کنیم:
1- یکی از سادهترین راهها استفاده از سایتهایی مثل google است که با جستجوی عبارت SMTP Server هزاران سرور پیدا کنیم.
2- استفاده از SMTP Server سایت دانشگاهها. تجربه برام ثابت کرده که این روش یکی از بهترینهاست.
3- استفاده از یک سری SMTP Server های مشهور. این روش هم بد نیست.
حالا روش را عملا نشونتون میدم:
اول باید یک سرور را مشخص کنید که از طریق آن میخواهید fake mail را بفرستید. همانطور که قبلا گفتم اگر مثلا میخواهید برای یه نفر که mail box او در یاهو است، fake mail بزنید، سرور را همان سرور در نظر بگیرید یعنی از خود yahoo.com برای ارسال استفاده کنید.
بعد باید ببینید که در این سرور کدام subdomain باید استفاده کنید (یعنی اینکه SMTP Server سرور آدرسش، mail.yahoo.com است یا mx.yahoo.com است یا چیز دیگر). برای این کار دو روش را میگم:
1- از nslookup استفاده کنیم:
با nslookup قبلا آشنا شدهاید. اول باید با whois یک name server پیدا میکردیم و بعد از طریق آن سایت را nslookup میکردیم (اگر فراموش کردهاید، درس 5 و 6 را دوباره بخوانید. مثلا میخواهم SMTP Server مربوط به far30.com را پیدا کنم. اول یک whois میکنم و میبینم که name server سایت، s1.sazin.com و s2.sazin.com است. حالا nslookup میکنم و آن سطر هایی را میخوانم که با نام MX مشخص شده است و 2 تا آدرس میبینم که عبارتند از far30.com و mail.far30.com پس SMTP Server های سایت far30.com همین دو آدرس است. در نتیجه اگر بخواهم از سایت far30.com برای ارسال fake mail استفاده کنم، از این آدرسها باید بهره گیرم.
2- استفاده از بعضی سایتهای خاص:
یکی از این سایتها http://www.mob.net/~ted/tools/mx.php3 است. در این سایت، نام سایت را مینویسید و دکمه lookup را کلیک میکنید. مثلا من نوشتم yahoo.com و به نتایج زیر رسیدم:
Domain Server: ns.mob.net
yahoo.com mail is handled by 5 mx4.mail.yahoo.com.
yahoo.com mail is handled by 1 mx1.mail.yahoo.com.
yahoo.com mail is handled by 1 mx2.mail.yahoo.com.
Domain Server: ns.cw.net
yahoo.com mail is handled by 5 mx4.mail.yahoo.com.
yahoo.com mail is handled by 1 mx1.mail.yahoo.com.
yahoo.com mail is handled by 1 mx2.mail.yahoo.com.
مشخص است که SMTP Server های سایت yahoo.com عبارتند از: mx1.mail.yahoo.com , mx2.mail.yahoo.com , mx4.mail.yahoo.com
اگرچه این روش راحتتر به نظر میرسد ولی شما را یه انسان مصرفی بار میآورد نه خلاق !
با پورت 25 صحبت کنیم
حالا که SMTP Server دارم میتونم fake mail بزنم.
به عنوان مثال میخواهم به آدرس target@yahoo.com یک fake mail بزنم که شخص فکر کند که Email از آدرس me@hotmal.com آمده است. (دقت کنید که این آدرس هر چیزی میتواند باشد. مثلا میتوانید از طرف Bill Gates به یه نفر E-mail بزنید). و میخواهم Subject آن باشد: arze salam و متن پیغام این باشد: bah bah sam aleikum
برای این کار :
1- چون mail box قربانی در سایت یاهو است، پس من هم بهتر است از SMTP Server خود یاهو استفاده کنم (بهتر است ولی اجباری در آن نیست). SMTP Server های یاهو را در قسمت قبلی به دست آوردم. مثلا از mx1.mail.yahoo.com استفاده میکنم.
2- باید از telnet یا nc برای برقراری ارتباط استفاده کنم. الان میخوام از telnet استفاده کنم. پس باید دستور زیر را بهکار برم (دقت کنید که از اسم SMTP Serevr استفاده کردم).
telnet mx1.mail.yahoo.com 25
بعد از تایپ دستور، صفحه پاک میشود و جواب میگیرم:
220 YSmtp mta499.mail.yahoo.com ESMTP service ready
3- حالا دستور زیر را مینویسم. دقت کنید که چون از telnet استفاده میکنید، چیزهایی را که تایپ میکنید، نمیبینید و اینکه نمیتونید از دکمه BackSpace استفاده کنید (پس در تایپکردن دقت کنید!):
HELO yahoo.com
این دستور یعنی من از کجا هستم (یعنی شما که میخواهید میل بزنید، کی هستید). اینجا من گفتم که من از سایت yahoo.com هستم!! معمولا مهم نیست که جلوی عبارت HELO نام چه سایتی را بنویسید چون اکثرا چک نمیشود. و جواب میشنوم:
250 mta499.mail.yahoo.com
4- حالا باید مشخص کنم که E-mail فرستنده (یعنی من) چیست. چون میخواهم E-mail از طرف me@hotmail.com به نظر بیاید، مینویسم:
MAIL FROM:
و جواب میگیرم:
250 sender ok
5- حالا باید بگم که این E-mail به چه آدرس ارسال شود که در این مثال، target@yahoo.com است. باید بنویسم:
RCPT TO:
و جواب میشنوم:
250 recipient ok
6- حالا باید بنویسم،
DATA
و Enter بزنم و جواب میشنوم:
354 go ahead
اینجا وقت تایپ کردن یک سری چیزهای اساسی است. اول مینویسم،
From: abbas akbari
این همان اسمی است که به عنوان Sender یا همان From دیده خواهد شد. من خواستم که به اسم abbas akbari دیده شود. حالا مینویسم:
Subject: arze salam
این هم در آن E-mail به عنوان subject خواهد بود. حالا موارد زیر را مینویسم (که اختیاری است):
MIME-Version: 1.0
Content-Type: text/plain;
و بعد دوتا !! Enter زده و متن نامه را مینویسم:
bah bah
sam aleikum
.
دقت کنید که یک کاراکتر . (نقطه) در سطر آخر نوشتم و بعد Enter زدم. با این روش به پورت 25 حالی میکنم که متن نامه تمام شدهاست و نامه ارسال شود. متعاقبا پیغامی میگیرم که بیانگر ارسال E-mail است.
250 ok dirdel
7- مینویسم:
QUIT
تا ارتباط قطع شود و از telnet خارج بشم.
اول توصیه میکنم که یک fake mail واسه خودتون بفرستید تا ماهیت fake mail را درک کنید.
مسئله بعدی آن است که در قسمتی target@yahoo.com نوشته شده است، شما باید این سطر را تغییر داده و E-mail قربانی خودتان در یاهو را بنویسید!
همان کار با nc
برای انجام این کار با nc اول همان دستورات بالا را در فایلی مثلا به اسم fake.txt مینویسیم :
HELO yahoo.com
MAIL FROM:
RCPT TO:
DATA
From: abbas akbari
Subject: arze salam
MIME-Version: 1.0
Content-Type: text/plain;
bah bah
sam aleikum
.
QUIT
حالا فایل را ذخیره کرده و از دستور زیر استفاده میکنم:
nc -v mx1.mail.yahoo.com 25 < fake.txt
همین!
Fake mail در صندوق پستی به چه شکلی ظاهر میشود؟
این قسمت رو در مورد mail box های yahoo و hotmail توضیح میدم.
اینکه این نوع E-mail ها به چه شکلی ظاهر میشود، بستگی به این دارد که تنظیمات mail box قربانی در چه حالتی تنظیم شده باشد. در حالت معمول فقط تعدادی از header ها نمایش داده میشود. در این حالت معمولا fake mail مثل یک E-mail معمولی دیده میشود.
From: “abbas akbari”
Subject: arze salam
bah bah
sam aleikum
در mail box ها میتوان تنظیمات را طوری انجام داد که تمام header ها نمایش داده شوند.
برای اینکار در yahoo از منویی که بالای صفحه است، منوی Mail را باز کرده و گزینه Options را کلیک میکنیم. در صفحهای که میآید، روی گزینه General Preferences کلیک کنید. در صفحهای که میآید، از قسمت Message در قسمت Headers گزینه ; Show all را انتخاب میکنیم و دکمه Save را از پایین صفحه کلیک میکنیم. حالا همان میل را دوباره باز میکنم و مشاهده میکنم که به شکل زیر ظاهر میشود:
From abbas akbari Mon Jan 6 05:56:37 2003
X-Apparently-To: ali1000vali2000@yahoo.com via 216.136.129.53; 06
Jan 2003 05:56:37 -0800 (PST)
Return-Path:
Received: from 217.218.84.27 (HELO yahoo.com) (217.218.84.27) by
mta576.mail.yahoo.com with SMTP; 06 Jan 2003 05:56:37 -0800 (PST)
From: “abbas akbari”
Subject: arze salam
MIME-Version: 1.0
Content-Type: text/plain;
Content-Length: 19
bah bah
sam aleikum
در این حالت میتوانید ip ارسال کننده را هم ببینید. (سعی کنید که همیشه تنظیمات yahoo mailbox تان به این شکل باشد)
پیام ( 4 نظر )
.: نوشته شد 17:29 در زمانسینا آزادنیا توسط :.
.: درس 17 :. چهارشنبه، 28 خرداد، 1382
– خلاصه درس: در این درس یاد میگیریم که با پورتها تعامل داشته باشیم و یاد میگیریم که با پورتهای 13 و 8 و 80 به کمک telnet و nc صحبت کنیم.
شروع کار با پورتها
الان به جایی رسیدهایم که میتوانیم بحث پورتها را شروع کنیم. اولین نکتهای که باید بگم این است که ابزاری که به کمک آن با پورتها صحبت میکنیم در همه پورتها یکی است ولی هر پورتی زبان مخصوص خود دارد (درست مثل زبانهای مختلف در جهان که همشون از طریق زبان و دهان ادا میشن ولی هر کدام روش خاصی برای ارتباط برقرار کردن دارند). پس ما برای کار با پورتها باید زبان هرکدام را یاد بگیریم.
بحث بعدی این است که وقتی میگیم یه پورت بازه باید توجه کنید که برنامهای روی آن کامپیوتر نصب شده و اون پورت را باز کرده است (پورتها خود به خود باز نمیشوند). یک سری پورتها توسط خود سیستمعامل باز میشوند (یعنی به محض نصب سیستمعامل که خودش هم درواقع یه نرمافزاره) و نیازی نیست که برنامه دیگری برایش نصب کنیم. در مقابل، بعضی پورتهای دیگر توسط برنامههای جانبی باز میشوند.
به عنوان مثال وقتی میگم که پورت 25 روی یک ip باز است، این معنی را دارد که برنامهای روی اون کامپیوتر خاص وجود دارد که پورت 25 را باز کرده و من وقتی از طریق کامپیوتر خودم با آن پورت کار میکنم در واقع دارم با آن برنامه خاص (که اون پورت را باز کرده) صحبت میکنم.
حالا یه سوال پیش میآد که چرا اصلا یه نرمافزار باید پورت باز کنه و اینکه کدام نرمافزارها باید پورت باز کنند؟
جواب این است که هر برنامهای که بخواهد از طریق شبکه (یعنی از راه دور اصطلاحا remote) قابل دسترس باشه باید یه پورت باز کنه. پس یک برنامهای که نیازی به برقراری ارتباط شبکهای ندارد (مثلا یه نرمافزار گرافیکی) نباید و نشاید که پورت باز کند.
باید ببینیم که از طریق چه برنامهای میتوان با پورتها صحبت کرد ( البته با هرکدام به روش خودشان )؟
برای اینکار از دو نرمافزار به نامهای telnet و nc استفاده میکنیم. telnet که در خود سیستمعامل وجود دارد و nc را هم که جلسه قبل داونلود کردیم.
حالا چگونه از این دو نرمافزارها میتوان استفاده کنیم؟
1- استفاده از telnet :
اگر بخواهیم با ip ای به شماره 19422518413 از طریق پورت 25 صحبت کنیم باید بنویسیم:
telnet 194.225.184.13 25
و بعد اینکه ارتباط برقرار شد باید شروع کنیم و از طریق زبان پورت 25 با آن صحبت کنیم.
2- استفاده از nc :
اگر بخواهیم همان کار را با netcat انجام دهیم، باید بنویسیم:
nc -v 194.225.184.13 25
و بعد از برقراری ارتباط شروع به صحبت کنیم.
با پورت 13 صحبت کنیم
نام دیگر اون daytime است و کارش هم اینه که زمان و تاریخ رو در اون کامپیوتر به ما میده. این پورت اصولا خیلی سر راسته. فقط کافیه که بهش وصل شیم تا اطلاعاتشون بیرون بریزه. البته این پورت رو خیلی از کامپیوترها بسته است. (یادتون باشه که وقتی میتوان با یه پورت کار کرد که باز باشد).
حالا میخوایم با پورت 13 از ip شماره 19422518413 صحبت کنم. یکی از این دو دستور را مینویسم:
telnet 194.225.184.13 13nc -v 194.225.184.13 13
البته در آن دستورات به جای عدد 13 میتوان معادلش را نوشت که daytime است.
و جواب میشنوم:
11:35:33 AM 10/5/2002
بله، با این پورت ارتباط برقرار کردیم و اطلاعاتش رو دریافت کردیم. این اطلاعات معمولا به درد این میخورد که مکان جغرافیایی اون کامپیوتر را حدس بزنیم (البته اگر زمان اون کامپیوتر صحیح باشد). به عنوان مثال این کامپیوتر خاص در ایران است چون ساعتش همزمان با ایران است.
با پورت 7 صحبت کنیم
اسم این پورت echo است. من این پورت رو پورت میمون میگم چون هرچی که شما براش بنویسید را تقلید میکنه و همانها را براتون پس میفرستد. مثلا من به پورت 7 کامپیوتری با ip شماره 19422518413 تلنت یا nc میکنم.
telnet 194.225.184.13 7nc -v 194.225.184.13 7
بعد از برقراری ارتباط، هر چی من بنویسم، اون برام پس میفرسته. مثلا اگه تایپ کنم Ali1000 و Enter بزنیم، جواب میشنوم، Ali1000 ; خودتون امتحان کنید تا ببینید. برای تمام شدن کار باید دکمه Ctrl+C را فشار دهیم تا این میمون بازی تموم بشه.
پس کار کردن با این پورت هم زیاد سخت نیست.
با پورت 80 صحبت کنیم
پورت 80 یکی از مهمترین پورتهاست. دنیای وب (صفحات اینترنتی) بر اساس همین پورت کار میکنه. توضیح اینکه وقتی به یه سایت وصل میشیم و صفحه وب را درخواست میکنیم، در واقع مرورگر اینترنتی به پورت 80 اون کامپیوتر وصل میشه و اطلاعات رو میگیره (البته بعد از گرفتن اطلاعات اون رو تفسیر میکنه و به صورت یه صفحه نشون میده – دقت کنید که اطلاعات در واقع به صورت یک سری تگ HTML است ). حالا ما میخواهیم با پورت 80 یک کامپیوتر صحبت کنیم ولی به کمک telnet و nc.
اول باید یه connection (اتصال) با پورت 80 برقرار کنیم (مثلا برای سایت hotmail.com باید بنویسم):
telnet www.hotmail.com 80nc -v www.hotmail.com 80
پس اول باید یکی از دستورات بالا را استفاده کنیم. من همیشه توصیهام استفاده از nc بوده و خواهد بود.
حالا باید شروع به صحبت با پورت 80 کنیم. من فعلا دو تا جمله براتون میگم و بقیهاش بمونه واسه بعد. دقت کنید که موقع کار با پورت 80 با تلنت (نه nc) دستوراتی که ما مینویسیم، نمایش داده نمیشود ولی کار میکنه.
1- اولین جمله اینه: GET / HTTP/1.0 و بعدش دوتا Enter
به فاصلهها دقت کنید. دو طرف / ی که بعد از GET است، فاصله وجود دارد. این جمله به پورت 80 میگه که هرچی در header داره، نشون بده. و جواب میشنوم:
HTTP/1.0 302 Moved TemporarilyServer: Microsoft-IIS/5.0Date: Thu, 05 Dec 2002 12:02:51 GMTLocation: http://lc2.law5.hotmail.passport.com/cgi-bin/loginX-Cache: MISS from cache5.neda.net.irConnection: close
2- دومین جمله اینه: GET / what/ever و بعدش دوتا Enter
به فاصلهها دقت کنید. این دستور باعث میشه که هر چی داره، رو کنه.
البته توجه کنید که ما مسیر را مشخص نکردیم. بعدها در مورد این مسیر مشخص کردن صحبت خواهم کرد. این حالت که بدون مسیر است خیلی وقتها کار نمیکنه (مثل همین مثال !!)
گاهی پیش میآد که یک سری دستورات خاص را همیشه باید پشت سرهم به یه پورت خاص بفرستیم و بخواهیم در وقت صرفهجویی کنیم. مثلا همین جمله GET / HTTP/1.0 و دو Enter پشت سرهم که همیشه استفاده میکنیم. در این موارد میتوان این دستورات را در یک فایل تایپ کرد (همراه با Enter ها که باید موقع نوشتن حتما بزنید) و بعد مثلا با نام ali.txt ذخیره کنید و بعد یکی از دستورات زیر را بنویسیم:
nc -v www.far30.com 80 < ali.txttype ali.txt | nc -v www.far30.com 80
که همان کارهای بالایی را انجام میده.
پیام ( 1 نظر )
.: نوشته شد 17:28 در زمانسینا آزادنیا توسط :.
.: درس 16 :. چهارشنبه، 28 خرداد، 1382
– خلاصه درس: NMapWin نرمافزار آشنایی است، در این درس با نسخه اصلی و خطفرمانی آن که nmap نام دارد، آشنا میشویم. در قسمت بعدی با نرمافزار netcat آشنا میشویم و از آن برای Port Scanning استفاده میکنیم.
کلمات کلیدی :